package exception;
/**
 * java异常处理机制中的try...catch
 * 语法:
 * try{
 *   正常的代码片段(A计划)
 * }catch(XXXException){
 *   当try中的代码出现了XXXException之后的处理代码(B计划)
 * }
 */
public class TryCatchDemo {
    public static void main(String[] args) {
        System.out.println("程序开始");
        try {
            String str = null;
            //System.out.println(str.length());
            String a = "abc";
            //System.out.println(a.charAt(5));
            System.out.println(Integer.parseInt(a));
            /*
             try中的代码不出现异常时，catch语句块是不执行的。
             try中的代码出现异常时，剩余代码不会被执行
             */
            System.out.println("??????");
        }catch (NullPointerException|StringIndexOutOfBoundsException e){
            System.out.println("空指针异常或下标越界异常");
        }catch (Exception e){   //捕获超类型异常，那么它的所有子类异常都可以被处理
                                //如果catch的异常存在继承关系，那么子异常在上，父异常在下
            System.out.println("反正出了个错");
        }
        System.out.println("程序结束");
    }
}
